package com.ruoyi.system.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 项目积分流水对象 jiajia_points_flow
 *
 * @author ruoyi
 * @date 2025-03-10
 */
public class JiajiaPointsFlow extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * $column.columnComment
     */
    private Long id;

    /**
     * 用户id
     */
    @Excel(name = "用户id")
    private Long uid;

    /**
     * 订单id
     */
    @Excel(name = "订单id")
    private Long jiajiaOrderId;

    /**
     * 项目id
     */
    @Excel(name = "项目id")
    private Long iid;

    /**
     * 项目金额
     */
    @Excel(name = "项目金额")
    private BigDecimal productTotalPrice;

    /**
     * 项目积分
     */
    @Excel(name = "项目积分")
    private BigDecimal productPoints;


    //积分类型0：无条件使用积分，1：利润积分，2：排队解锁积分
    private String pointsType;


    public String getPointsType() {
        return pointsType;
    }

    public void setPointsType(String pointsType) {
        this.pointsType = pointsType;
    }

    /**
     * 是否删除
     */
    @Excel(name = "是否删除")
    private Integer deleted;

    private String notes;

    public String getIntegralStatus() {
        return integralStatus;
    }

    public void setIntegralStatus(String integralStatus) {
        this.integralStatus = integralStatus;
    }

    private String integralStatus;


    public String getNotes() {
        return notes;
    }

    public void setNotes(String notes) {
        this.notes = notes;
    }


    /**
     * 版本号
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "版本号", width = 30, dateFormat = "yyyy-MM-dd")
    private Date version;

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setUid(Long uid) {
        this.uid = uid;
    }

    public Long getUid() {
        return uid;
    }

    public void setJiajiaOrderId(Long jiajiaOrderId) {
        this.jiajiaOrderId = jiajiaOrderId;
    }

    public Long getJiajiaOrderId() {
        return jiajiaOrderId;
    }

    public void setIid(Long iid) {
        this.iid = iid;
    }

    public Long getIid() {
        return iid;
    }

    public void setProductTotalPrice(BigDecimal productTotalPrice) {
        this.productTotalPrice = productTotalPrice;
    }

    public BigDecimal getProductTotalPrice() {
        return productTotalPrice;
    }

    public void setProductPoints(BigDecimal productPoints) {
        this.productPoints = productPoints;
    }

    public BigDecimal getProductPoints() {
        return productPoints;
    }

    public void setDeleted(Integer deleted) {
        this.deleted = deleted;
    }

    public Integer getDeleted() {
        return deleted;
    }

    public void setVersion(Date version) {
        this.version = version;
    }

    public Date getVersion() {
        return version;
    }


    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("uid", getUid())
                .append("jiajiaOrderId", getJiajiaOrderId())
                .append("iid", getIid())
                .append("productTotalPrice", getProductTotalPrice())
                .append("productPoints", getProductPoints())
                .append("deleted", getDeleted())
                .append("version", getVersion())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("integralStatus", getIntegralStatus())
                .toString();
    }


}
